In general, this invention relates to the transmission of a file over a network. More specifically, this invention relates to a method for smoothing the transmission of a time-sensitive file over a network.
A communication network allows the transfer of information from a sender to a receiver across a distance. Initial networks provided for the transfer of voice or audio information. Over time, however, the types of information transferred by a communication network evolved to include not only voice or audio but also data, video and images. Increasingly, the information transferred is “multimedia” in that it consists of some combination of voice, audio, data, video and/or image. Video and voice combinations comprise a large part of multimedia files and are expected to be a significant portion of future network traffic. Applications that currently utilize or intend to utilize the transmission of multimedia files include video-on-demand and the “web casting” of television programs.
The transfer of multimedia information over a network generally is time-sensitive in that the information must be received within a certain time period in order to be effectively utilized or reproduced. One example of a type of time-sensitive information is a video stream. A video stream contains a series of still images or frames that result in a moving picture when displayed in sequence. If the frames are sequentially displayed at a rapid rate, the result is a completely fluid picture. Generally, a display rate of 24 frames per second is considered motion picture quality and a display rate of 30 frames per second is considered broadcast quality. Thus, if broadcast quality video is desired, a display device must receive the frames in the proper sequence at a rate of at least 30 frames per second. If the display rate is slow, then the display device will not be able to display the images rapidly enough and the result is a poor quality, erratic picture.
There is an additional factor that affects the timing requirements of the transmission of a multimedia file. During a typical transmission, the frames of a multimedia file are initially received in the buffer of a stream decoder where they are stored before being decoded and sent to other devices, such as a display device. Decoder buffers have a limited size, so if the frames arrive too quickly there is a risk that the buffer will already be full of frames waiting to be decoded. In this case, the decoder will have no place to store the arriving frames and those frames will be lost. If the frames arrive too slowly, the buffer will be emptied of frames before new frames arrive. The decoder will then be idle until new frames arrive. A feasible transmission, therefore, will insure that the frames do not underflow or overflow the decoder buffer. An effective transmission is feasible while providing the frames at a rate in which they may be effectively utilized.
The size of the frames and the rate at which the frames must be displayed causes the transmission of most time-sensitive files to be highly bandwidth intensive. For example, an uncompressed, broadcast quality video typically requires between 90 Mbps (megabits per second) to 270 Mbps of bandwidth for a successful transmission. Even when compressed, a video stream may require between 1.5 Mbps and 9 Mbps of bandwidth. Moreover, the size of the frames may vary greatly which causes the bandwidth required at a given time to vary. Thus, for a compressed video stream, a communication network utilized to transfer the stream must have at least 9 Mbps (approximately) of bandwidth available, although the entire reserved bandwidth may not be fully utilized at any specific time.
The nature of a multimedia file, as described above, makes if difficult to transfer such a file effectively and efficiently. For example, one method of transferring a multimedia file would be to find the bandwidth required to transfer the largest frame and then reserve that bandwidth for the time required to transfer the entire file. This method would insure that the bandwidth needed to transfer the largest frame is continually available. The method, however, is inefficient because the entire reserved bandwidth would not be utilized during significant portions of the transfer. Another method of transferring the stream would be to reserve only the bandwidth necessary for a particular frame when that frame is scheduled to be transferred. This method is also inefficient in that every frame might require a different bandwidth and, therefore, the method would constantly be changing the reserved bandwidth which may increase the cost of the transmission to an unacceptable level.
To reduce the high variability of bandwidth demanded and improve efficiency, a time-sensitive transmission may be “smoothed.” Generally, smoothing seeks to maximize the time intervals at which a reserved rate and/or transmission rate is used without causing the decoder's buffer to overflow or underflow. For example, consider a five frame stream in which the first frame requires a transmission rate of 1 Mbps, the second frame requires 0.5 Mbps, the third frame requires 1 Mbps, the fourth frame requires 4 Mbps, and the fifth frame requires 5 Mbps for an acceptable transmission. Instead of scheduling an initial reserved rate of 1 Mbps with four changes, one after each frame is transmitted, or scheduling a reserved rate of 5 Mbps for the entire transmission, a smoothed transmission might request an initial reserved rate of 1 Mbps and then one change to 5 Mbps after the third frame is transmitted. Although the smoothed transmission would have excess reserved bandwidth during the transmission of the second frame and the fourth frame, this excess is significantly less than the method that reserves the maximum bandwidth required. Also, the smoothed method has only one change in reserved rate compared to four changes in the method requiring a separate reserved rate for each frame.
Current smoothing methods generate a transmission schedule for a sequence of frames as described above. These methods, however, assume a zero or a maximum end-to-end delay though the communication network when determining an appropriate reserved rate. The end-to-end delay for a transmission, however, is not zero or any constant amount. Instead, the end-to-end delay for a particular transmission is variable which affects whether the frames will overflow or underflow the decoder buffer. Thus, if the actual delay for a portion of a transmission is lower than predicted, the frames will arrive at the decoder buffer faster than anticipated and cause the buffer to overflow. Similarly, if the actual delay is greater than predicted, the frames will arrive at the decoder buffer slower than anticipated and cause the decoder buffer to underflow. Therefore, a transmission schedule computed by assuming either no end-to-end delay or a constant end-to-end delay instead of a variable end-to-end delay often leads to a transmission that is neither feasible nor optimal.